Counter-Example Guided Program Verification
نویسندگان
چکیده
This paper presents a novel counter-example guided abstraction refinement algorithm for the automatic verification of concurrent programs. Our algorithm proceeds in different steps. It first constructs an abstraction of the original program by slicing away a given subset of variables. Then, it uses an external model checker as a backend tool to analyze the correctness of the abstract program. If the model checker returns that the abstract program is safe then we conclude that the original one is also safe. If the abstract program is unsafe, we extract an “abstract” counter-example. In order to check if the abstract counterexample can lead to a real counter-example of the original program, we add back to the abstract counter-example all the omitted variables (that have been sliced away) to obtain a new program. Then, we call recursively our algorithm on the new obtained program. If the recursive call of our algorithm returns that the new program is unsafe, then we can conclude that the original program is also unsafe and our algorithm terminates. Otherwise, we refine the abstract program by removing the abstract counter-example from its set of possible runs. Finally, we repeat the procedure with the refined abstract program. We have implemented our algorithm, and run it successfully on the concurrency benchmarks in SV-COMP15. Our experimental results show that our algorithm significantly improves the performance of the backend tool.
منابع مشابه
A Counter Example Guided Abstraction Refinement Framework for Compositional Verification of Concurrent C Programs
Automatic verification of software implementations is a major challenge in the domain of formal methods. The state of the art solutions to this problem suffer from one or more of the following drawbacks. First, most tools attempt to scale to large implementations. But since they use trace containment as a notion of conformance, they risk an exponential blowup in the size of the specification. T...
متن کاملHow to Cook an Automated System for Linux Driver Verification
We present the preliminary results of our work on designing an automatic toolset for verification of Linux kernelspace drivers. By now the toolset includes three components: • a library of verification models; each model is a formal description of some safety property to be checked; • a preprocessor unit; it is intended for simulating an environment of a driver; • a verification unit BLAST; it ...
متن کاملReachability Analysis of Hybrid Systems using Counter-Example Guided Predicate Abstraction∗
Predicate abstraction has emerged to be a powerful technique for extracting finite-state models from infinite-state discrete programs. This report presents algorithms and tools for reachability analysis of hybrid systems by combining the notion of counter-example guided predicate abstraction with recent techniques for approximating the set of reachable states of linear systems using polyhedra. ...
متن کاملBuilding Confidence on Formal Verification Models
ion; Counter-Example Guided Abstraction Refinement; symmetry; . . . while others are hand-crafted, such as cut-point, counter-abstraction, or data independence. By construction, the verification objective (the root claim) is valid when all the rules instances in the argument are sound. We can back the soundness of rules like (split) and (abstraction) by reasoning on the semantics of the models....
متن کاملThe VerCors Tool Set: Verification of Parallel and Concurrent Software
models are process algebra terms Wytse Oortwijn, UTwente Verifying Concurrent Software 25 / 30 Introduction Deterministic Parallelism GPU Kernels Model Abstractions Conclusion Our approach: deducative + algorithmic verification requires Process(P); ensures Process(ε); void main(args) { S1 ‖ S2; } Process algebras abstraction Algorithmic analysis input Temporal properties LTL, CTL, etc. input De...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016